/* 
 * File:   Generator.h
 * Author: stuart
 *
 * Created on June 15, 2012, 9:26 AM
 */

#ifndef GENERATOR_H
#define	GENERATOR_H

#include <vector>
#include "Node.h"

using namespace std;

enum Direction {
    LEFT,
    RIGHT
};

class Generator {
    void generate_tree(Node* root, Node* paramActual, Node* leaf, vector<Node* >* trees, Orientation orientation);
    void map_root_path(Node* node, vector<Direction> *path);
public:
    void generate_trees(Node* root, Node* paramActual, Node* leaf, vector<Node* >* trees);
    void generate_trees(vector<Node*> nodes, vector<Node*>* trees);
//    void generate_trees(vector<Node*>* roots, Node* leaf, vector<Node* >* trees);
};

#endif	/* GENERATOR_H */

